﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using SaludOcupacional.Model;
using SaludOcupacional.Controller;

namespace SaludOcupacional
{
    /// <summary>
    /// Interaction logic for EditarEmpleado.xaml
    /// </summary>
    public partial class EditarEmpleado : Window
    {
        public Empleado empleado;
        public string Ci;
        public EditarEmpleado(int ci)
        {
            Ci = ci.ToString();
            InitializeComponent();
            empleado = EmpleadoManager.GetEmpleadoByCi(ci.ToString());

            DatosIngreso datosIngreso = DatosIngresoManager.GetDatosIngresoByCi(empleado.Ci.ToString());

            eCodigo.Text = empleado.Codigo.ToString();
            eSeguro.Text = empleado.NumeroSeguro.ToString();
            eNombre.Text = empleado.Nombre;
            ePaterno.Text = empleado.ApellidoPaterno;
            eMaterno.Text = empleado.ApellidoMaterno;
            eEstado.Text = empleado.Estado;
            eSangre.Text = empleado.GrupoSangre;
            eConstitucion.Text = empleado.Constitucion;
            eExp.Text = empleado.Exp;
            eNacimiento.Text = empleado.FechaNacimiento;
            eTelefono.Text = empleado.Telefono.ToString();
            eCelular.Text = empleado.Celular.ToString();
            eCi.Text = empleado.Ci.ToString();
            ePuestoTrabajo.Text = datosIngreso.PuestoTrabajo;
            eFechaIngreso.Text = datosIngreso.FechaIngreso;
            eFechaTraslado.Text = datosIngreso.FechaTraslado;
            eFechaSalida.Text = datosIngreso.FechaSalida;
        }

        private void eGuardar_Click(object sender, RoutedEventArgs e)
        {
            int telefono;
            int celular;

            try
            {
                Empleado aux = EmpleadoManager.GetEmpleadoByCi(eCi.Text);
                DatosIngreso aux2 = DatosIngresoManager.GetDatosIngresoByCi(eCi.Text);
                EmpleadoManager.ValidarNuevoEmpleado(eCodigo.Text, eCi.Text, eSeguro.Text, eNombre.Text,
                                                  ePaterno.Text, eMaterno.Text);

                if (eTelefono.Text == "")
                    telefono = 0;
                else
                    telefono = Convert.ToInt32(eTelefono.Text);
                if (eCelular.Text == "")
                    celular = 0;
                else
                    celular = Convert.ToInt32(eCelular.Text);

                Empleado empleado = new Empleado(Convert.ToInt32(eCi.Text), aux.CodEmpleado, Convert.ToInt32(eCodigo.Text), Convert.ToInt32(eSeguro.Text), eExp.Text, eNombre.Text, ePaterno.Text, eMaterno.Text, eNacimiento.Text, telefono, celular, eEstado.Text, eSangre.Text, eConstitucion.Text);


                DatosIngreso datosIngreso = new DatosIngreso(Convert.ToInt32(eCi.Text), ePuestoTrabajo.Text, eFechaIngreso.Text, eFechaTraslado.Text, eFechaSalida.Text, aux2.CodDatos);
                EmpleadoManager.EditEmpleado(empleado);
                DatosIngresoManager.EditarDatos(datosIngreso);
                
                MessageBox.Show("CAMBIOS REALIZADOS!!");
                Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
        }

        private void eTelefono_TextChanged(object sender, TextChangedEventArgs e)
        {
            int number;
            try
            {
                if (eTelefono.Text != "")
                {
                    number = Convert.ToInt32(eTelefono.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("El Numero de Telefono debe Ser Numerico!");
                eTelefono.Text = "";
            }
        }

        private void eCelular_TextChanged(object sender, TextChangedEventArgs e)
        {
            int number;
            try
            {
                if (eCelular.Text != "")
                {
                    number = Convert.ToInt32(eCelular.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("El Numero de Celular debe Ser Numerico!");
                eCelular.Text = "";
            }
        }

        private void eCodigo_TextChanged(object sender, TextChangedEventArgs e)
        {
            int number;
            try
            {
                if (eCodigo.Text != "")
                {
                    number = Convert.ToInt32(eCodigo.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("El Codigo debe Ser Numerico!");
                eCodigo.Text = "";
            }
        }

        private void eSeguro_TextChanged(object sender, TextChangedEventArgs e)
        {
            int number;
            try
            {
                if (eSeguro.Text != "")
                {
                    number = Convert.ToInt32(eSeguro.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("El Codigo debe Ser Numerico!");
                eSeguro.Text = "";
            }
        }

        private void eVerificar_Click(object sender, RoutedEventArgs e)
        {
            if (EmpleadoManager.GetEmpleadoByCi(eCi.Text) == null || EmpleadoManager.GetEmpleadoByCi(eCi.Text).Ci == Convert.ToInt32(eCi.Text))
            {
                MessageBox.Show("CI Valido!!");
                Ci = eCi.Text;
                eVerificar.Visibility = Visibility.Hidden;
            }
            else
            {
                MessageBox.Show("Error: " + "El Carnet de Identidad ya esta En Uso Ya esta En Uso!!");
            }
        }

        private void eCi_TextChanged(object sender, TextChangedEventArgs e)
        {
            int number;
            try
            {
                if (eCi.Text != "")
                {
                    number = Convert.ToInt32(eCi.Text);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("La Cedula De identidad debe Ser Numerico!");
                eCi.Text = "";
            }
            if (eCi.Text != "" || Ci != eCi.Text)
            {
                eVerificar.Visibility = Visibility.Visible;
            }

        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }
    }
}
